package com.ruoyi.manage.enterprise.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Dict;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.manage.organization.domain.OcFinancingMatch;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 企业融资需求对象 ec_enterprise_financing_info
 *
 * @author ruoyi
 * @date 2025-08-13
 */
@Data
@ApiModel(value="企业融资需求对象", description="企业融资需求")
@TableName("ec_enterprise_financing_info")
@Builder
public class EcEnterpriseFinancingInfo extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  id
     * 
     */

    @Excel(name = "id")
    private  Long  id;

    /**
     *  $column.columnComment
     * 
     */

    @Dict(readConverterExp = "$column.readConverterExp()")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "$comment",notes="$column.readConverterExp()")
    private  String  creditCodeDelete;

    /**
     * 企业名称
     *
    * */
    private String enterpriseName;

    /**
     *  申请编号
     * 
     */

    @Excel(name = "申请编号")
    @ApiModelProperty(value = "申请编号")
    private  String  applyNo;

    /**
     *  申请方式（1300256912436101122）
     * 
     */

    @Dict(readConverterExp = "1=300256912436101122")
    @Excel(name = "申请方式", readConverterExp = "1=300256912436101122")
    @ApiModelProperty(value = "申请方式",notes="1=300256912436101122")
    private  String  applyWay;

    /**
     *  申请金额最小值
     * 
     */

    @Excel(name = "申请金额最小值")
    @ApiModelProperty(value = "申请金额最小值")
    private  BigDecimal  applyAmountMin;

    /**
     *  申请金额最大值
     * 
     */

    @Excel(name = "申请金额最大值")
    @ApiModelProperty(value = "申请金额最大值")
    private  BigDecimal  applyAmountMax;

    /**
     *  融资意向
     * 
     */

    @Excel(name = "融资意向")
    @ApiModelProperty(value = "融资意向")
    private  String  orientation;

    /**
     *  融资期限上限
     * 
     */

    @Excel(name = "融资期限上限")
    @ApiModelProperty(value = "融资期限上限")
    private  String  maturityMax;

    /**
     *  融资期限下限
     * 
     */

    @Excel(name = "融资期限下限")
    @ApiModelProperty(value = "融资期限下限")
    private  String  maturityMin;

    /**
     *  利率上限%
     * 
     */

    @Excel(name = "利率上限%")
    @ApiModelProperty(value = "利率上限%")
    private  BigDecimal  rateMax;

    /**
     *  利率下限%
     * 
     */

    @Excel(name = "利率下限%")
    @ApiModelProperty(value = "利率下限%")
    private  BigDecimal  rateMin;

    /**
     *  担保类型
     * 
     */

    @Excel(name = "担保类型")
    @ApiModelProperty(value = "担保类型")
    private  String  guaranteeType;

    /**
     *  还款方式
     * 
     */

    @Excel(name = "还款方式")
    @ApiModelProperty(value = "还款方式")
    private  String  repaymentType;

    /**
     *  到账时间类型
     * 
     */

    @Excel(name = "到账时间类型")
    @ApiModelProperty(value = "到账时间类型")
    private  String  arrivalTimeType;

    /**
     *  需求状态选项 0 提交融资申请 1 待分配 2 分配失败 3待抢单 4待确认 5待授信 6 授信成功 10全部拒绝或失败
     * 
     */

    @Excel(name = "需求状态选项 0 提交融资申请 1 待分配 2 分配失败 3待抢单 4待确认 5待授信 6 授信成功 10全部拒绝或失败")
    @ApiModelProperty(value = "需求状态选项 0 提交融资申请 1 待分配 2 分配失败 3待抢单 4待确认 5待授信 6 授信成功 10全部拒绝或失败")
    private  String  applyState;

    /**
     *  盈亏状态选项
     * 
     */

    @Excel(name = "盈亏状态选项")
    @ApiModelProperty(value = "盈亏状态选项")
    private  String  profitState;

    /**
     *  收入数据选项
     * 
     */

    @Excel(name = "收入数据选项")
    @ApiModelProperty(value = "收入数据选项")
    private  String  incomeData;

    /**
     *  纳税等级选项
     * 
     */

    @Excel(name = "纳税等级选项")
    @ApiModelProperty(value = "纳税等级选项")
    private  String  taxLevel;

    /**
     *  纳税金额选项
     * 
     */

    @Excel(name = "纳税金额选项")
    @ApiModelProperty(value = "纳税金额选项")
    private  String  taxAmount;

    /**
     *  之前贷款银行
     * 
     */

    @Excel(name = "之前贷款银行")
    @ApiModelProperty(value = "之前贷款银行")
    private  String  loanBankName;

    /**
     *  之前贷款银行-其他
     * 
     */

    @Excel(name = "之前贷款银行-其他")
    @ApiModelProperty(value = "之前贷款银行-其他")
    private  String  loanBankOther;

    /**
     *  当前贷款余额
     * 
     */

    @Excel(name = "当前贷款余额")
    @ApiModelProperty(value = "当前贷款余额")
    private  BigDecimal  loanLeftAmount;

    /**
     *  省站点ID
     * 
     */

    @Excel(name = "省站点ID")
    @ApiModelProperty(value = "省站点ID")
    private  String  provinceSiteId;

    /**
     *  抵押物标识
     * 
     */

    @Excel(name = "抵押物标识")
    @ApiModelProperty(value = "抵押物标识")
    private  String  collateralFlag;

    /**
     *  省名称
     * 
     */

    @Excel(name = "省名称")
    @ApiModelProperty(value = "省名称")
    private  String  provinceName;

    /**
     *  市站点ID
     * 
     */

    @Excel(name = "市站点ID")
    @ApiModelProperty(value = "市站点ID")
    private  String  citySiteId;

    /**
     *  市名称
     * 
     */

    @Excel(name = "市名称")
    @ApiModelProperty(value = "市名称")
    private  String  cityName;

    /**
     *  区站点ID
     * 
     */

    @Excel(name = "区站点ID")
    @ApiModelProperty(value = "区站点ID")
    private  String  areaSiteId;

    /**
     *  区名称
     * 
     */

    @Excel(name = "区名称")
    @ApiModelProperty(value = "区名称")
    private  String  areaName;

    /**
     *  终止理由
     * 
     */

    @Excel(name = "终止理由")
    @ApiModelProperty(value = "终止理由")
    private  String  reason;

    /**
     *  发起来源
     * 
     */

    @Excel(name = "发起来源")
    @ApiModelProperty(value = "发起来源")
    private  String  source;

    /**
     *  发起来源渠道（根据发起来源联动获取）
     * 
     */

    @Dict(readConverterExp = "根=据发起来源联动获取")
    @Excel(name = "发起来源渠道", readConverterExp = "根=据发起来源联动获取")
    @ApiModelProperty(value = "发起来源渠道",notes="根=据发起来源联动获取")
    private  String  sourceChannel;

    /**
     *  融资顾问
     * 
     */

    @Excel(name = "融资顾问")
    @ApiModelProperty(value = "融资顾问")
    private  String  financialAdvisor;

    /**
     *  融资顾问手机号
     * 
     */

    @Excel(name = "融资顾问手机号")
    @ApiModelProperty(value = "融资顾问手机号")
    private  String  financialAdvisorTell;

    /**
     *  联系人
     * 
     */

    @Excel(name = "联系人")
    @ApiModelProperty(value = "联系人")
    private  String  enterpriseContactor;

    /**
     *  联系人电话
     * 
     */

    @Excel(name = "联系人电话")
    @ApiModelProperty(value = "联系人电话")
    private  String  contactorTell;

    /**
     *  备注【融资取消理由其他】
     * 
     */

    @Excel(name = "备注【融资取消理由其他】")
    @ApiModelProperty(value = "备注【融资取消理由其他】")
    private  String  remarks;

    /**
     *  删除标识
     * 
     */

    @Excel(name = "删除标识")
    @ApiModelProperty(value = "删除标识")
    private  Integer  deleted;

    /**
     *  创建时间
     * 
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private  Date  createTime;

    /**
     *  编辑时间
     * 
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "编辑时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "编辑时间")
    private  Date  updateTime;

    /**
     *  版本
     * 
     */

    @Excel(name = "版本")
    @ApiModelProperty(value = "版本")
    private  Long  version;

    /**
     *  抵押房产类型 （1288748427047346281）
     * 
     */

    @Dict(readConverterExp = "1=288748427047346281")
    @Excel(name = "抵押房产类型 ", readConverterExp = "1=288748427047346281")
    @ApiModelProperty(value = "抵押房产类型 ",notes="1=288748427047346281")
    private  String  mortgageEstateType;

    /**
     *  抵押物房产所在地
     * 
     */

    @Excel(name = "抵押物房产所在地")
    @ApiModelProperty(value = "抵押物房产所在地")
    private  String  mortgageEstateAddress;

    /**
     *  抵押物房产所在省
     * 
     */

    @Excel(name = "抵押物房产所在省")
    @ApiModelProperty(value = "抵押物房产所在省")
    private  String  mortgageEstateProvince;

    /**
     *  抵押物房产所在市
     * 
     */

    @Excel(name = "抵押物房产所在市")
    @ApiModelProperty(value = "抵押物房产所在市")
    private  String  mortgageEstateCity;

    /**
     *  抵押物房产所在区
     * 
     */

    @Excel(name = "抵押物房产所在区")
    @ApiModelProperty(value = "抵押物房产所在区")
    private  String  mortgageEstateArea;

    /**
     *  $column.columnComment
     * 
     */

    @Dict(readConverterExp = "$column.readConverterExp()")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "$comment",notes="$column.readConverterExp()")
    private  Long  productId;

    /**
     *  经营所在省编码
     * 
     */

    @Excel(name = "经营所在省编码")
    @ApiModelProperty(value = "经营所在省编码")
    private  String  corrProvinceSiteId;

    /**
     *  经营所在地省名称
     * 
     */

    @Excel(name = "经营所在地省名称")
    @ApiModelProperty(value = "经营所在地省名称")
    private  String  corrProvinceSiteName;

    /**
     *  经营所在地市编码
     * 
     */

    @Excel(name = "经营所在地市编码")
    @ApiModelProperty(value = "经营所在地市编码")
    private  String  corrCitySiteId;

    /**
     *  经营所在地市名称
     * 
     */

    @Excel(name = "经营所在地市名称")
    @ApiModelProperty(value = "经营所在地市名称")
    private  String  corrCitySiteName;

    /**
     *  经营所在地区编码
     * 
     */

    @Excel(name = "经营所在地区编码")
    @ApiModelProperty(value = "经营所在地区编码")
    private  String  corrAreaSiteId;

    /**
     *  经营所在地区名称
     * 
     */

    @Excel(name = "经营所在地区名称")
    @ApiModelProperty(value = "经营所在地区名称")
    private  String  corrAreaSiteName;

    /**
     *  机构名称（根据机构名称匹配产品）
     * 
     */

    @Dict(readConverterExp = "根=据机构名称匹配产品")
    @Excel(name = "机构名称", readConverterExp = "根=据机构名称匹配产品")
    @ApiModelProperty(value = "机构名称",notes="根=据机构名称匹配产品")
    private  String  organizationName;

    /**
     *  站点ID
     * 
     */

    @Excel(name = "站点ID")
    @ApiModelProperty(value = "站点ID")
    private  String  siteId;

    /**
     *  本地站点编号
     * 
     */

    @Excel(name = "本地站点编号")
    @ApiModelProperty(value = "本地站点编号")
    private  String  siteCode;

    /**
     *  站点名称
     * 
     */

    @Excel(name = "站点名称")
    @ApiModelProperty(value = "站点名称")
    private  String  siteName;

    /**
     *  企业id
     * 
     */

    @Excel(name = "企业id")
    @ApiModelProperty(value = "企业id")
    private  Long  enterpriseId;

    /**
     *  产品名称
     * 
     */

    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private  String  productName;

    /**
     *  优惠券id
     * 
     */

    @Excel(name = "优惠券id")
    @ApiModelProperty(value = "优惠券id")
    private  Long  ticketId;



    /**
     *  企业白名单id
     * 
     */

    @Excel(name = "企业白名单id")
    @ApiModelProperty(value = "企业白名单id")
    private  String  wlEnterpriseId;
    @TableField(exist = false)
    private List<String> ids;


    @TableField(exist = false)
    private List<OcFinancingMatch>  ocFinancingMatch;
    @Tolerate
    public EcEnterpriseFinancingInfo(){}
}
